package ceura.ia.practica.heuristica;

import ceura.ia.practica.Point;

/**
 * Implementación del patrón Strategy para calcular las distintas heurísticas,
 * así pues, se podrá cambiar la heurística del laberinto en tiempo de
 * ejecución, ya que para implemetar una nueva heurística, ésta debe implementar
 * está interfaz y escribir su algoritmo en el método proporcinado, el cual será
 * llamado a la hora de realizar los cálculos.
 *
 * @author Sergio Redondo y Jorge Madrid.
 */
public interface HeuristicaStrategy {

    /**
     *
     * @param inicial Punto inicial.
     * @param puntoFinal Punto final.
     * @return
     */
    public int calculateHeuristica(Point inicial, Point puntoFinal);
}
